.TH E1432_REENABLE_INTERRUPT 3 E1432
.SH NAME
e1432_reenable_interrupt \- Reenable interrupts
.IX  e1432_reenable_interrupt(3) 3
.SH SYNOPSIS
.cS
SHORTSIZ16 e1432_reenable_interrupt(E1432ID hw, SHORTSIZ16 ID)
.cE
.SH DESCRIPTION

When VME interrupts are being used, an E1432 module will do a VME
interrupt when an event matching the current interrupt mask occurs.
Once it has done this interrupt, the module will not do any more VME
interrupts until re-enabled with \fIe1432_reenable_interrupt\fR.
Normally, the last thing a host computer's interrupt handler should do
is call \fIe1432_reenable_interrupt\fR.

Events that would have caused an interrupt, but which are blocked
because \fIe1432_reenable_interrupt\fR has not yet been called, will
be saved.  After \fIe1432_reenable_interrupt\fR is called, these saved
events will cause an interrupt, so that there is no way for the host
to "miss" an interrupt.  However, the module will only do one VME
interrupt for all of the saved events, so that the host computer will
not get flooded with too many interrupts.

For things like "E1432_IRQ_BLOCK_READY", which are not events but are
actually states, the module will do an interrupt after
\fIe1432_reenable_interrupt\fR only if the state is still present.
This allows the host computer's interrupt handler to potentially read
multiple scans from an E1432 module, and not get flooded with block
ready interrupts after the fact.

\fIhw\fR must be the result of a successful call to
\fIe1432_assign_channel_numbers\fR, and specifies the group of
hardware to talk to.

\fIID\fR is either the ID of a group of channels that was obtained with a
call to \fIe1432_create_channel_group\fR, or the ID of a single channel.
.SH "RESET VALUE"
None.
.SH "RETURN VALUE"
Return 0 if successful, a (negative) error number otherwise.
.SH "SEE ALSO"
.na
e1432_set_interrupt_mask, e1432_intr(5)
.ad
